#pragma once
#include<stdio.h>
#include<stdlib.h>
#include<assert.h>
#include<stdbool.h>

typedef int DataType;
typedef struct Qnode
{
	DataType val;
	struct Qnode* next;
}Qnode;

typedef struct Queue
{
	Qnode* head;
	Qnode* tail;
	int size;
}Queue;
//初始化队列
void QueueInit(Queue* ps);
//进队列
void QueuePush(Queue* ps, DataType x);
//出队列
void QueuePop(Queue* ps);
//销毁队列
void QueueDestory(Queue* ps);
//获取队列头元素
DataType QueueFront(Queue* ps);
//获取队列尾元素
DataType QueueBack(Queue* ps);
//检测队列是否为空
bool QueueEmpty(Queue* ps);
//获取队列有效元素个数
int QueueSzie(Queue* ps);

